Remote presentation protocols such as the ICA protocol manufactured by Citrix Systems, Inc., of Ft. Lauderdale, Fla., the X protocol by the X.org Foundation, the Virtual Network Computing protocol of AT&T Corp., or the RDP protocol, manufactured by Microsoft Corporation of Redmond, Wash., are inherently stateful. In order to view a particular point in a stream of recorded presentation protocol data, playback of the stream must begin from the very beginning of stream and must be played back sequentially until the desired point is encountered.
Conventional techniques for accessing a recorded stream of data out of sequential order typically involve the use of keyframes and delta frames. Keyframes are typically stored within the stream itself as synchronization points so that frames may be quickly reproduced on a screen. Delta frames typically describe differences from previous frames to produce the visible video frame.
Since remote presentation protocols are typically compact due to their stateful nature, the additional storage of keyframes increases file size by several orders of magnitude. Even with modern digital video compression techniques, keyframes generally add several orders of magnitude to the storage required for a stream of recorded presentation protocol data. However, omitting keyframes results in a non-seekable protocol. A method for seekability without the overhead of oversized files caused by stored keyframes is desirable.
Server-side recording of remote presentation protocols is useful in authoring training material, providing helpdesk support, enabling tutorials, or for environments where distributing software to each client workstation is cumbersome. However, many conventional methods for recording protocol data streams suffer from drawbacks such as inefficient and lossless encoding of computer screen activity. Recording and storing files solely on the server may create issues regarding the handling of large numbers of concurrent sessions. Many conventional systems typically suffer the drawbacks of recording significantly more data than will ever be reviewed, involving complex recording processes or generating large file sizes.
Some conventional methods for recording protocol data streams are not bound to the remote presentation protocol itself. Many of these solutions involve screen scraping/capture technologies or hooking of the client graphics engine and as a result suffer the drawback of requiring a processor-intensive encoding or transcoding process for playback. Furthermore, these conventional methods for recording protocol streams are not capable of detecting text included in video frame data at, seekability of the captured text using target words, or replaying a recorded stream of video data out of sequential order based on detected characters or text.